home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / Emulation_Include_Files / tapi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-02-19  |  37.7 KB  |  1,110 lines

  1. // The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  2. // granted  a royalty free worldwide, unlimited license to make copies, and use
  3. // the   API/SPI  for  making  applications/drivers  that  interface  with  the
  4. // specification provided that this paragraph and the Intel/Microsoft copyright
  5. // statement is maintained as is in the text and source code files.
  6. //
  7. // Copyright (c) 1992-1998 Intel/Microsoft, all rights reserved.
  8.  
  9. // @CESYSGEN IF CE_MODULES_TAPI
  10.  
  11. #ifndef TAPI_H
  12. #define TAPI_H
  13.  
  14. #include <windows.h>
  15.  
  16. #pragma pack(1)
  17. // Type definitions of the data types used in tapi
  18.  
  19. #ifdef __cplusplus
  20. extern "C" {            /* Assume C declarations for C++ */
  21. #endif   /* __cplusplus */
  22.  
  23.  
  24. #define DECLARE_OPAQUE32(name)  struct name##__ { int unused; }; \
  25.                                 typedef const struct name##__ FAR* name
  26.  
  27. DECLARE_OPAQUE32(HCALL);
  28. typedef HCALL * LPHCALL;
  29.  
  30. DECLARE_OPAQUE32(HLINE);
  31. typedef HLINE * LPHLINE;
  32.  
  33. DECLARE_OPAQUE32(HLINEAPP);
  34. typedef HLINEAPP * LPHLINEAPP;
  35.  
  36. typedef HICON * LPHICON;
  37. // typedef of the LINE callback procedure
  38. typedef void (CALLBACK * LINECALLBACK)  (DWORD hDevice,
  39.                                               DWORD dwMessage,
  40.                                               DWORD dwInstance,
  41.                                               DWORD dwParam1,
  42.                                               DWORD dwParam2,
  43.                                               DWORD dwParam3);
  44.  
  45.  
  46. // Messages for Phones and Lines
  47.  
  48. #define LINE_ADDRESSSTATE        0L
  49. #define LINE_CALLINFO            1L
  50. #define LINE_CALLSTATE           2L
  51. #define LINE_CLOSE               3L
  52. #define LINE_DEVSPECIFIC         4L
  53. #define LINE_DEVSPECIFICFEATURE  5L
  54. #define LINE_GATHERDIGITS        6L
  55. #define LINE_GENERATE            7L
  56. #define LINE_LINEDEVSTATE        8L
  57. #define LINE_MONITORDIGITS       9L
  58. #define LINE_MONITORMEDIA        10L
  59. #define LINE_MONITORTONE         11L
  60. #define LINE_REPLY               12L
  61. #define LINE_REQUEST             13L
  62.  
  63. #define LINE_CREATE              19L
  64.  
  65. #define LINE_REMOVE              21L
  66.  
  67.  
  68. #define TAPIMAXDESTADDRESSSIZE   200L 
  69. #define TAPIMAXAPPNAMESIZE        40L
  70. #define TAPIMAXCALLEDPARTYSIZE    40L
  71. #define TAPIMAXCOMMENTSIZE        80L
  72. #define TAPIMAXDEVICECLASSSIZE    40L
  73. #define TAPIMAXDEVICEIDSIZE       40L
  74.  
  75.  
  76. #define STRINGFORMAT_ASCII   0x00000001
  77. #define STRINGFORMAT_DBCS    0x00000002
  78. #define STRINGFORMAT_UNICODE 0x00000003
  79. #define STRINGFORMAT_BINARY  0x00000004
  80.  
  81. typedef struct varstring_tag {
  82.     DWORD    dwTotalSize;
  83.     DWORD    dwNeededSize;
  84.     DWORD    dwUsedSize;
  85.  
  86.     DWORD    dwStringFormat;
  87.     DWORD    dwStringSize;
  88.     DWORD    dwStringOffset;
  89. } VARSTRING, *LPVARSTRING;
  90.  
  91. // Data types and values for Lines
  92.  
  93.  
  94. #define LINEADDRCAPFLAGS_FWDNUMRINGS        0x00000001
  95. #define LINEADDRCAPFLAGS_PICKUPGROUPID      0x00000002    
  96. #define LINEADDRCAPFLAGS_SECURE             0x00000004
  97. #define LINEADDRCAPFLAGS_BLOCKIDDEFAULT     0x00000008
  98. #define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE    0x00000010
  99. #define LINEADDRCAPFLAGS_DIALED             0x00000020
  100. #define LINEADDRCAPFLAGS_ORIGOFFHOOK        0x00000040
  101. #define LINEADDRCAPFLAGS_DESTOFFHOOK        0x00000080
  102. #define LINEADDRCAPFLAGS_FWDCONSULT         0x00000100
  103. #define LINEADDRCAPFLAGS_SETUPCONFNULL      0x00000200
  104. #define LINEADDRCAPFLAGS_AUTORECONNECT      0x00000400
  105. #define LINEADDRCAPFLAGS_COMPLETIONID       0x00000800
  106. #define LINEADDRCAPFLAGS_TRANSFERHELD       0x00001000
  107. #define LINEADDRCAPFLAGS_TRANSFERMAKE       0x00002000
  108. #define LINEADDRCAPFLAGS_CONFERENCEHELD     0x00004000
  109. #define LINEADDRCAPFLAGS_CONFERENCEMAKE     0x00008000
  110. #define LINEADDRCAPFLAGS_PARTIALDIAL        0x00010000
  111. #define LINEADDRCAPFLAGS_FWDSTATUSVALID     0x00020000
  112. #define LINEADDRCAPFLAGS_FWDINTEXTADDR      0x00040000
  113. #define LINEADDRCAPFLAGS_FWDBUSYNAADDR      0x00080000
  114. #define LINEADDRCAPFLAGS_ACCEPTTOALERT      0x00100000
  115. #define LINEADDRCAPFLAGS_CONFDROP           0x00200000
  116. #define LINEADDRCAPFLAGS_PICKUPCALLWAIT     0x00400000
  117.  
  118. typedef struct lineaddresscaps_tag {
  119.     DWORD    dwTotalSize;
  120.     DWORD    dwNeededSize;
  121.     DWORD    dwUsedSize;
  122.  
  123.     DWORD    dwLineDeviceID;
  124.  
  125.     DWORD    dwAddressSize;
  126.     DWORD    dwAddressOffset;
  127.  
  128.     DWORD    dwDevSpecificSize;
  129.     DWORD    dwDevSpecificOffset;
  130.  
  131.     DWORD    dwAddressSharing;
  132.     DWORD    dwAddressStates;
  133.     DWORD    dwCallInfoStates;
  134.     DWORD    dwCallerIDFlags;
  135.     DWORD    dwCalledIDFlags;
  136.     DWORD    dwConnectedIDFlags;
  137.     DWORD    dwRedirectionIDFlags;
  138.     DWORD    dwRedirectingIDFlags;
  139.     DWORD    dwCallStates;
  140.     DWORD    dwDialToneModes;
  141.     DWORD    dwBusyModes;
  142.     DWORD    dwSpecialInfo;
  143.     DWORD    dwDisconnectModes;
  144.  
  145.     DWORD    dwMaxNumActiveCalls;
  146.     DWORD    dwMaxNumOnHoldCalls;
  147.     DWORD    dwMaxNumOnHoldPendingCalls;
  148.     DWORD    dwMaxNumConference;
  149.     DWORD    dwMaxNumTransConf;
  150.  
  151.     DWORD    dwAddrCapFlags;
  152.     DWORD    dwCallFeatures;
  153.     DWORD    dwRemoveFromConfCaps;
  154.     DWORD    dwRemoveFromConfState;
  155.     DWORD    dwTransferModes;
  156.     DWORD    dwParkModes;
  157.  
  158.     DWORD    dwForwardModes;
  159.     DWORD    dwMaxForwardEntries;
  160.     DWORD    dwMaxSpecificEntries;
  161.     DWORD    dwMinFwdNumRings;
  162.     DWORD    dwMaxFwdNumRings;
  163.  
  164.     DWORD    dwMaxCallCompletions;
  165.     DWORD    dwCallCompletionConds;
  166.     DWORD    dwCallCompletionModes;
  167.     DWORD    dwNumCompletionMessages;
  168.     DWORD    dwCompletionMsgTextEntrySize;
  169.     DWORD    dwCompletionMsgTextSize;
  170.     DWORD    dwCompletionMsgTextOffset;
  171. } LINEADDRESSCAPS, *LPLINEADDRESSCAPS;
  172.  
  173. #define LINEADDRESSMODE_ADDRESSID        0x00000001
  174. #define LINEADDRESSMODE_DIALABLEADDR     0x00000002
  175.  
  176.  
  177. #define LINEADDRESSSHARING_PRIVATE        0x00000001
  178. #define LINEADDRESSSHARING_BRIDGEDEXCL    0x00000002
  179. #define LINEADDRESSSHARING_BRIDGEDNEW     0x00000004
  180. #define LINEADDRESSSHARING_BRIDGEDSHARED  0x00000008
  181. #define LINEADDRESSSHARING_MONITORED      0x00000010
  182.  
  183. #define LINEADDRESSSTATE_OTHER            0x00000001
  184. #define LINEADDRESSSTATE_DEVSPECIFIC      0x00000002
  185. #define LINEADDRESSSTATE_INUSEZERO        0x00000004
  186. #define LINEADDRESSSTATE_INUSEONE         0x00000008
  187. #define LINEADDRESSSTATE_INUSEMANY        0x00000010
  188. #define LINEADDRESSSTATE_NUMCALLS         0x00000020
  189. #define LINEADDRESSSTATE_FORWARD          0x00000040
  190. #define LINEADDRESSSTATE_TERMINALS        0x00000080
  191.  
  192. typedef struct lineaddressstatus_tag {
  193.     DWORD    dwTotalSize;
  194.     DWORD    dwNeededSize;
  195.     DWORD    dwUsedSize;
  196.  
  197.     DWORD    dwNumInUse;
  198.     DWORD    dwNumActiveCalls;
  199.     DWORD    dwNumOnHoldCalls;
  200.     DWORD    dwNumOnHoldPendCalls;
  201.     DWORD    dwAddressFeatures;
  202.  
  203.     DWORD    dwNumRingsNoAnswer;
  204.     DWORD    dwForwardNumEntries;
  205.     DWORD    dwForwardSize;
  206.     DWORD    dwForwardOffset;
  207.  
  208.     DWORD    dwTerminalModesSize;
  209.     DWORD    dwTerminalModesOffset;
  210.  
  211.     DWORD    dwDevSpecificSize;
  212.     DWORD    dwDevSpecificOffset;
  213. } LINEADDRESSSTATUS, *LPLINEADDRESSSTATUS;
  214.  
  215. #define LINEADDRFEATURE_FORWARD           0x00000001
  216. #define LINEADDRFEATURE_MAKECALL          0x00000002
  217. #define LINEADDRFEATURE_PICKUP            0x00000004
  218. #define LINEADDRFEATURE_SETMEDIACONTROL   0x00000008
  219. #define LINEADDRFEATURE_SETTERMINAL       0x00000010
  220. #define LINEADDRFEATURE_SETUPCONF         0x00000020
  221. #define LINEADDRFEATURE_UNCOMPLETECALL    0x00000040
  222. #define LINEADDRFEATURE_UNPARK            0x00000080
  223.  
  224.  
  225. #define LINEANSWERMODE_NONE    0x00000001
  226. #define LINEANSWERMODE_DROP    0x00000002
  227. #define LINEANSWERMODE_HOLD    0x00000004
  228.  
  229. #define LINEBEARERMODE_VOICE            0x00000001
  230. #define LINEBEARERMODE_SPEECH           0x00000002
  231. #define LINEBEARERMODE_MULTIUSE         0x00000004
  232. #define LINEBEARERMODE_DATA             0x00000008
  233. #define LINEBEARERMODE_ALTSPEECHDATA    0x00000010
  234. #define LINEBEARERMODE_NONCALLSIGNALING 0x00000020
  235. #define LINEBEARERMODE_PASSTHROUGH      0x00000040
  236.  
  237. #define LINEBUSYMODE_STATION    0x00000001
  238. #define LINEBUSYMODE_TRUNK      0x00000002
  239. #define LINEBUSYMODE_UNKNOWN    0x00000004
  240. #define LINEBUSYMODE_UNAVAIL    0x00000008
  241.  
  242. #define LINECALLCOMPLCOND_BUSY        0x00000001
  243. #define LINECALLCOMPLCOND_NOANSWER    0x00000002
  244.  
  245. #define LINECALLCOMPLMODE_CAMPON      0x00000001
  246. #define LINECALLCOMPLMODE_CALLBACK    0x00000002
  247. #define LINECALLCOMPLMODE_INTRUDE     0x00000004
  248. #define LINECALLCOMPLMODE_MESSAGE     0x00000008
  249.  
  250. #define LINECALLFEATURE_ACCEPT                   0x00000001
  251. #define LINECALLFEATURE_ADDTOCONF                0x00000002
  252. #define LINECALLFEATURE_ANSWER                   0x00000004
  253. #define LINECALLFEATURE_BLINDTRANSFER            0x00000008
  254. #define LINECALLFEATURE_COMPLETECALL             0x00000010
  255. #define LINECALLFEATURE_COMPLETETRANSF           0x00000020
  256. #define LINECALLFEATURE_DIAL                     0x00000040
  257. #define LINECALLFEATURE_DROP                     0x00000080
  258. #define LINECALLFEATURE_GATHERDIGITS             0x00000100
  259. #define LINECALLFEATURE_GENERATEDIGITS           0x00000200
  260. #define LINECALLFEATURE_GENERATETONE             0x00000400
  261. #define LINECALLFEATURE_HOLD                     0x00000800
  262. #define LINECALLFEATURE_MONITORDIGITS            0x00001000
  263. #define LINECALLFEATURE_MONITORMEDIA             0x00002000
  264. #define LINECALLFEATURE_MONITORTONES             0x00004000
  265. #define LINECALLFEATURE_PARK                     0x00008000
  266. #define LINECALLFEATURE_PREPAREADDCONF           0x00010000
  267. #define LINECALLFEATURE_REDIRECT                 0x00020000
  268. #define LINECALLFEATURE_REMOVEFROMCONF           0x00040000
  269. #define LINECALLFEATURE_SECURECALL               0x00080000
  270. #define LINECALLFEATURE_SENDUSERUSER             0x00100000
  271. #define LINECALLFEATURE_SETCALLPARAMS            0x00200000
  272. #define LINECALLFEATURE_SETMEDIACONTROL          0x00400000
  273. #define LINECALLFEATURE_SETTERMINAL              0x00800000
  274. #define LINECALLFEATURE_SETUPCONF                0x01000000
  275. #define LINECALLFEATURE_SETUPTRANSFER            0x02000000
  276. #define LINECALLFEATURE_SWAPHOLD                 0x04000000
  277. #define LINECALLFEATURE_UNHOLD                   0x08000000
  278.  
  279. typedef struct linedialparams_tag {
  280.     DWORD    dwDialPause;
  281.     DWORD    dwDialSpeed;
  282.     DWORD    dwDigitDuration;
  283.     DWORD    dwWaitForDialtone;
  284. } LINEDIALPARAMS, *LPLINEDIALPARAMS;
  285.  
  286. typedef struct linecallinfo_tag {
  287.     DWORD    dwTotalSize;
  288.     DWORD    dwNeededSize;
  289.     DWORD    dwUsedSize;
  290.  
  291.     HLINE    hLine;
  292.     DWORD    dwLineDeviceID;
  293.     DWORD    dwAddressID;
  294.  
  295.     DWORD    dwBearerMode;
  296.     DWORD    dwRate;
  297.     DWORD    dwMediaMode;
  298.  
  299.     DWORD    dwAppSpecific;
  300.     DWORD    dwCallID;
  301.     DWORD    dwRelatedCallID;
  302.     DWORD    dwCallParamFlags;
  303.     DWORD    dwCallStates;
  304.  
  305.     DWORD    dwMonitorDigitModes;
  306.     DWORD    dwMonitorMediaModes;
  307.     LINEDIALPARAMS    DialParams;
  308.  
  309.     DWORD    dwOrigin;
  310.     DWORD    dwReason;
  311.     DWORD    dwCompletionID;
  312.     DWORD    dwNumOwners;
  313.     DWORD    dwNumMonitors;
  314.  
  315.     DWORD    dwCountryCode;
  316.     DWORD    dwTrunk;
  317.  
  318.     DWORD    dwCallerIDFlags;
  319.     DWORD    dwCallerIDSize;
  320.     DWORD    dwCallerIDOffset;
  321.     DWORD    dwCallerIDNameSize;
  322.     DWORD    dwCallerIDNameOffset;
  323.  
  324.     DWORD    dwCalledIDFlags;
  325.     DWORD    dwCalledIDSize;
  326.     DWORD    dwCalledIDOffset;
  327.     DWORD    dwCalledIDNameSize;
  328.     DWORD    dwCalledIDNameOffset;
  329.  
  330.     DWORD    dwConnectedIDFlags;
  331.     DWORD    dwConnectedIDSize;
  332.     DWORD    dwConnectedIDOffset;
  333.     DWORD    dwConnectedIDNameSize;
  334.     DWORD    dwConnectedIDNameOffset;
  335.  
  336.     DWORD    dwRedirectionIDFlags;
  337.     DWORD    dwRedirectionIDSize;
  338.     DWORD    dwRedirectionIDOffset;
  339.     DWORD    dwRedirectionIDNameSize;
  340.     DWORD    dwRedirectionIDNameOffset;
  341.  
  342.     DWORD    dwRedirectingIDFlags;
  343.     DWORD    dwRedirectingIDSize;
  344.     DWORD    dwRedirectingIDOffset;
  345.     DWORD    dwRedirectingIDNameSize;
  346.     DWORD    dwRedirectingIDNameOffset;
  347.  
  348.     DWORD    dwAppNameSize;
  349.     DWORD    dwAppNameOffset;
  350.  
  351.     DWORD    dwDisplayableAddressSize;
  352.     DWORD    dwDisplayableAddressOffset;
  353.  
  354.     DWORD    dwCalledPartySize;
  355.     DWORD    dwCalledPartyOffset;
  356.  
  357.     DWORD    dwCommentSize;
  358.     DWORD    dwCommentOffset;
  359.  
  360.     DWORD    dwDisplaySize;
  361.     DWORD    dwDisplayOffset;
  362.  
  363.     DWORD    dwUserUserInfoSize;
  364.     DWORD    dwUserUserInfoOffset;
  365.  
  366.     DWORD    dwHighLevelCompSize;
  367.     DWORD    dwHighLevelCompOffset;
  368.  
  369.     DWORD    dwLowLevelCompSize;
  370.     DWORD    dwLowLevelCompOffset;
  371.  
  372.     DWORD    dwChargingInfoSize;
  373.     DWORD    dwChargingInfoOffset;
  374.  
  375.     DWORD    dwTerminalModesSize;
  376.     DWORD    dwTerminalModesOffset;
  377.  
  378.     DWORD    dwDevSpecificSize;
  379.     DWORD    dwDevSpecificOffset;
  380. } LINECALLINFO, *LPLINECALLINFO;
  381.  
  382. #define LINECALLINFOSTATE_OTHER             0x00000001
  383. #define LINECALLINFOSTATE_DEVSPECIFIC       0x00000002
  384. #define LINECALLINFOSTATE_BEARERMODE        0x00000004
  385. #define LINECALLINFOSTATE_RATE              0x00000008
  386. #define LINECALLINFOSTATE_MEDIAMODE         0x00000010
  387. #define LINECALLINFOSTATE_APPSPECIFIC       0x00000020
  388. #define LINECALLINFOSTATE_CALLID            0x00000040
  389. #define LINECALLINFOSTATE_RELATEDCALLID     0x00000080
  390. #define LINECALLINFOSTATE_ORIGIN            0x00000100
  391. #define LINECALLINFOSTATE_REASON            0x00000200
  392. #define LINECALLINFOSTATE_COMPLETIONID      0x00000400
  393. #define LINECALLINFOSTATE_NUMOWNERINCR      0x00000800
  394. #define LINECALLINFOSTATE_NUMOWNERDECR      0x00001000
  395. #define LINECALLINFOSTATE_NUMMONITORS       0x00002000
  396. #define LINECALLINFOSTATE_TRUNK             0x00004000
  397. #define LINECALLINFOSTATE_CALLERID          0x00008000
  398. #define LINECALLINFOSTATE_CALLEDID          0x00010000
  399. #define LINECALLINFOSTATE_CONNECTEDID       0x00020000
  400. #define LINECALLINFOSTATE_REDIRECTIONID     0x00040000
  401. #define LINECALLINFOSTATE_REDIRECTINGID     0x00080000
  402. #define LINECALLINFOSTATE_DISPLAY           0x00100000
  403. #define LINECALLINFOSTATE_USERUSERINFO      0x00200000
  404. #define LINECALLINFOSTATE_HIGHLEVELCOMP     0x00400000
  405. #define LINECALLINFOSTATE_LOWLEVELCOMP      0x00800000
  406. #define LINECALLINFOSTATE_CHARGINGINFO      0x01000000
  407. #define LINECALLINFOSTATE_TERMINAL          0x02000000
  408. #define LINECALLINFOSTATE_DIALPARAMS        0x04000000
  409. #define LINECALLINFOSTATE_MONITORMODES      0x08000000
  410.  
  411. typedef struct linecalllist_tag {
  412.     DWORD    dwTotalSize;
  413.     DWORD    dwNeededSize;
  414.     DWORD    dwUsedSize;
  415.     
  416.     DWORD    dwCallsNumEntries;
  417.     DWORD    dwCallsSize;
  418.     DWORD    dwCallsOffset;
  419. } LINECALLLIST, *LPLINECALLLIST;
  420.  
  421. #define LINECALLORIGIN_OUTBOUND    0x00000001
  422. #define LINECALLORIGIN_INTERNAL    0x00000002
  423. #define LINECALLORIGIN_EXTERNAL    0x00000004
  424. #define LINECALLORIGIN_UNKNOWN     0x00000010
  425. #define LINECALLORIGIN_UNAVAIL     0x00000020
  426. #define LINECALLORIGIN_CONFERENCE  0x00000040
  427.  
  428. #define LINECALLPARAMFLAGS_SECURE           0x00000001
  429. #define LINECALLPARAMFLAGS_IDLE             0x00000002
  430. #define LINECALLPARAMFLAGS_BLOCKID          0x00000004
  431. #define LINECALLPARAMFLAGS_ORIGOFFHOOK      0x00000008
  432. #define LINECALLPARAMFLAGS_DESTOFFHOOK      0x00000010
  433.  
  434. typedef struct linecallparams_tag {     // Defaults:
  435.     DWORD    dwTotalSize;               // ---------
  436.     
  437.     DWORD    dwBearerMode;              // voice
  438.     DWORD    dwMinRate;                 // (3.1kHz)
  439.     DWORD    dwMaxRate;                 // (3.1kHz)
  440.     DWORD    dwMediaMode;               // interactiveVoice
  441.  
  442.     DWORD    dwCallParamFlags;          // 0
  443.     DWORD    dwAddressMode;             // addressID
  444.     DWORD    dwAddressID;               // (any available)
  445.  
  446.     LINEDIALPARAMS  DialParams;         // (0, 0, 0, 0)
  447.     
  448.     DWORD    dwOrigAddressSize;         // 0
  449.     DWORD    dwOrigAddressOffset;
  450.     DWORD    dwDisplayableAddressSize;
  451.     DWORD    dwDisplayableAddressOffset;
  452.  
  453.     DWORD    dwCalledPartySize;         // 0
  454.     DWORD    dwCalledPartyOffset;
  455.  
  456.     DWORD    dwCommentSize;             // 0
  457.     DWORD    dwCommentOffset;
  458.  
  459.     DWORD    dwUserUserInfoSize;        // 0
  460.     DWORD    dwUserUserInfoOffset;
  461.  
  462.     DWORD    dwHighLevelCompSize;       // 0
  463.     DWORD    dwHighLevelCompOffset;
  464.  
  465.     DWORD    dwLowLevelCompSize;        // 0
  466.     DWORD    dwLowLevelCompOffset;
  467.  
  468.     DWORD    dwDevSpecificSize;         // 0
  469.     DWORD    dwDevSpecificOffset;
  470. } LINECALLPARAMS, *LPLINECALLPARAMS;
  471.  
  472.  
  473. #define LINECALLPARTYID_BLOCKED         0x00000001
  474. #define LINECALLPARTYID_OUTOFAREA       0x00000002
  475. #define LINECALLPARTYID_NAME            0x00000004
  476. #define LINECALLPARTYID_ADDRESS         0x00000008
  477. #define LINECALLPARTYID_PARTIAL         0x00000010
  478. #define LINECALLPARTYID_UNKNOWN         0x00000020
  479. #define LINECALLPARTYID_UNAVAIL         0x00000040
  480.  
  481. #define LINECALLPRIVILEGE_NONE          0x00000001
  482. #define LINECALLPRIVILEGE_MONITOR       0x00000002
  483. #define LINECALLPRIVILEGE_OWNER         0x00000004
  484.  
  485. #define LINECALLSELECT_LINE     0x00000001
  486. #define LINECALLSELECT_ADDRESS  0x00000002
  487. #define LINECALLSELECT_CALL     0x00000004
  488.  
  489. #define LINECALLSTATE_IDLE                  0x00000001
  490. #define LINECALLSTATE_OFFERING              0x00000002
  491. #define LINECALLSTATE_ACCEPTED              0x00000004
  492. #define LINECALLSTATE_DIALTONE              0x00000008
  493. #define LINECALLSTATE_DIALING               0x00000010
  494. #define LINECALLSTATE_RINGBACK              0x00000020
  495. #define LINECALLSTATE_BUSY                  0x00000040
  496. #define LINECALLSTATE_SPECIALINFO           0x00000080
  497. #define LINECALLSTATE_CONNECTED             0x00000100
  498. #define LINECALLSTATE_PROCEEDING            0x00000200
  499. #define LINECALLSTATE_ONHOLD                0x00000400
  500. #define LINECALLSTATE_CONFERENCED           0x00000800
  501. #define LINECALLSTATE_ONHOLDPENDCONF        0x00001000
  502. #define LINECALLSTATE_ONHOLDPENDTRANSFER    0x00002000
  503. #define LINECALLSTATE_DISCONNECTED          0x00004000
  504. #define LINECALLSTATE_UNKNOWN               0x00008000
  505.  
  506.  
  507. #define LINECONNECTEDMODE_ACTIVE            0x00000001
  508. #define LINECONNECTEDMODE_INACTIVE          0x00000002
  509.  
  510. #define LINEOFFERINGMODE_ACTIVE             0x00000001
  511. #define LINEOFFERINGMODE_INACTIVE           0x00000002
  512.  
  513.  
  514. typedef struct linecallstatus_tag {
  515.     DWORD    dwTotalSize;
  516.     DWORD    dwNeededSize;
  517.     DWORD    dwUsedSize;
  518.  
  519.     DWORD    dwCallState;
  520.     DWORD    dwCallStateMode;
  521.     DWORD    dwCallPrivilege;
  522.     DWORD    dwCallFeatures;
  523.  
  524.     DWORD    dwDevSpecificSize;
  525.     DWORD    dwDevSpecificOffset;
  526. } LINECALLSTATUS, *LPLINECALLSTATUS;
  527.  
  528.  
  529. #define LINEDEVCAPFLAGS_CROSSADDRCONF   0x00000001
  530. #define LINEDEVCAPFLAGS_HIGHLEVCOMP     0x00000002
  531. #define LINEDEVCAPFLAGS_LOWLEVCOMP      0x00000004
  532. #define LINEDEVCAPFLAGS_MEDIACONTROL    0x00000008
  533. #define LINEDEVCAPFLAGS_MULTIPLEADDR    0x00000010
  534. #define LINEDEVCAPFLAGS_CLOSEDROP       0x00000020
  535. #define LINEDEVCAPFLAGS_DIALBILLING     0x00000040
  536. #define LINEDEVCAPFLAGS_DIALQUIET       0x00000080
  537. #define LINEDEVCAPFLAGS_DIALDIALTONE    0x00000100
  538.  
  539. typedef struct lineextensionid_tag {
  540.     DWORD    dwExtensionID0;
  541.     DWORD    dwExtensionID1;
  542.     DWORD    dwExtensionID2;
  543.     DWORD    dwExtensionID3;
  544. } LINEEXTENSIONID, *LPLINEEXTENSIONID;
  545.  
  546. typedef struct linedevcaps_tag {
  547.     DWORD    dwTotalSize;
  548.     DWORD    dwNeededSize;
  549.     DWORD    dwUsedSize;
  550.  
  551.     DWORD    dwProviderInfoSize;
  552.     DWORD    dwProviderInfoOffset;
  553.  
  554.     DWORD    dwSwitchInfoSize;
  555.     DWORD    dwSwitchInfoOffset;
  556.  
  557.     DWORD    dwPermanentLineID;
  558.     DWORD    dwLineNameSize;
  559.     DWORD    dwLineNameOffset;
  560.     DWORD    dwStringFormat;
  561.     
  562.     DWORD    dwAddressModes;
  563.     DWORD    dwNumAddresses;
  564.     DWORD    dwBearerModes;
  565.     DWORD    dwMaxRate;
  566.     DWORD    dwMediaModes;
  567.  
  568.     DWORD    dwGenerateToneModes;
  569.     DWORD    dwGenerateToneMaxNumFreq;
  570.     DWORD    dwGenerateDigitModes;
  571.     DWORD    dwMonitorToneMaxNumFreq;
  572.     DWORD    dwMonitorToneMaxNumEntries;
  573.     DWORD    dwMonitorDigitModes;
  574.     DWORD    dwGatherDigitsMinTimeout;
  575.     DWORD    dwGatherDigitsMaxTimeout;
  576.  
  577.     DWORD    dwMedCtlDigitMaxListSize;
  578.     DWORD    dwMedCtlMediaMaxListSize;
  579.     DWORD    dwMedCtlToneMaxListSize;
  580.     DWORD    dwMedCtlCallStateMaxListSize;
  581.  
  582.     DWORD    dwDevCapFlags;
  583.     DWORD    dwMaxNumActiveCalls;
  584.     DWORD    dwAnswerMode;
  585.     DWORD    dwRingModes;
  586.     DWORD    dwLineStates;
  587.  
  588.     DWORD    dwUUIAcceptSize;
  589.     DWORD    dwUUIAnswerSize;
  590.     DWORD    dwUUIMakeCallSize;
  591.     DWORD    dwUUIDropSize;
  592.     DWORD    dwUUISendUserUserInfoSize;
  593.     DWORD    dwUUICallInfoSize;
  594.     
  595.     LINEDIALPARAMS    MinDialParams;
  596.     LINEDIALPARAMS    MaxDialParams;
  597.     LINEDIALPARAMS    DefaultDialParams;
  598.  
  599.     DWORD    dwNumTerminals;
  600.     DWORD    dwTerminalCapsSize;
  601.     DWORD    dwTerminalCapsOffset;
  602.     DWORD    dwTerminalTextEntrySize;
  603.     DWORD    dwTerminalTextSize;
  604.     DWORD    dwTerminalTextOffset;
  605.  
  606.     DWORD    dwDevSpecificSize;
  607.     DWORD    dwDevSpecificOffset;
  608. } LINEDEVCAPS, *LPLINEDEVCAPS;
  609.     
  610. #define LINEDEVSTATE_OTHER              0x00000001
  611. #define LINEDEVSTATE_RINGING            0x00000002
  612. #define LINEDEVSTATE_CONNECTED          0x00000004
  613. #define LINEDEVSTATE_DISCONNECTED       0x00000008
  614. #define LINEDEVSTATE_MSGWAITON          0x00000010
  615. #define LINEDEVSTATE_MSGWAITOFF         0x00000020
  616. #define LINEDEVSTATE_INSERVICE          0x00000040
  617. #define LINEDEVSTATE_OUTOFSERVICE       0x00000080
  618. #define LINEDEVSTATE_MAINTENANCE        0x00000100
  619. #define LINEDEVSTATE_OPEN               0x00000200
  620. #define LINEDEVSTATE_CLOSE              0x00000400
  621. #define LINEDEVSTATE_NUMCALLS           0x00000800
  622. #define LINEDEVSTATE_NUMCOMPLETIONS     0x00001000
  623. #define LINEDEVSTATE_TERMINALS          0x00002000
  624. #define LINEDEVSTATE_ROAMMODE           0x00004000
  625. #define LINEDEVSTATE_BATTERY            0x00008000
  626. #define LINEDEVSTATE_SIGNAL             0x00010000
  627. #define LINEDEVSTATE_DEVSPECIFIC        0x00020000
  628. #define LINEDEVSTATE_REINIT             0x00040000
  629. #define LINEDEVSTATE_LOCK               0x00080000
  630. #define LINEDEVSTATE_CAPSCHANGE         0x00100000
  631. #define LINEDEVSTATE_CONFIGCHANGE       0x00200000
  632. #define LINEDEVSTATE_TRANSLATECHANGE    0x00400000
  633. #define LINEDEVSTATE_COMPLCANCEL        0x00800000
  634. #define LINEDEVSTATE_REMOVED            0x01000000
  635.  
  636. typedef struct linedevstatus_tag {
  637.     DWORD    dwTotalSize;
  638.     DWORD    dwNeededSize;
  639.     DWORD    dwUsedSize;
  640.  
  641.     DWORD    dwNumOpens;
  642.     DWORD    dwOpenMediaModes;
  643.     DWORD    dwNumActiveCalls;
  644.     DWORD    dwNumOnHoldCalls;
  645.     DWORD    dwNumOnHoldPendCalls;
  646.     DWORD    dwLineFeatures;
  647.     DWORD    dwNumCallCompletions;
  648.     DWORD    dwRingMode;
  649.     DWORD    dwSignalLevel;
  650.     DWORD    dwBatteryLevel;
  651.     DWORD    dwRoamMode;
  652.     
  653.     DWORD    dwDevStatusFlags;
  654.     
  655.     DWORD    dwTerminalModesSize;
  656.     DWORD    dwTerminalModesOffset;
  657.     
  658.     DWORD    dwDevSpecificSize;
  659.     DWORD    dwDevSpecificOffset;
  660. } LINEDEVSTATUS, *LPLINEDEVSTATUS;
  661.  
  662.  
  663. #define LINEDEVSTATUSFLAGS_CONNECTED  0x00000001
  664. #define LINEDEVSTATUSFLAGS_MSGWAIT    0x00000002
  665. #define LINEDEVSTATUSFLAGS_INSERVICE  0x00000004
  666. #define LINEDEVSTATUSFLAGS_LOCKED     0x00000008
  667.  
  668.  
  669. #define LINEDIALTONEMODE_NORMAL    0x00000001
  670. #define LINEDIALTONEMODE_SPECIAL   0x00000002
  671. #define LINEDIALTONEMODE_INTERNAL  0x00000004
  672. #define LINEDIALTONEMODE_EXTERNAL  0x00000008
  673. #define LINEDIALTONEMODE_UNKNOWN   0x00000010
  674. #define LINEDIALTONEMODE_UNAVAIL   0x00000020
  675.  
  676.  
  677. #define LINEDISCONNECTMODE_NORMAL       0x00000001
  678. #define LINEDISCONNECTMODE_UNKNOWN      0x00000002
  679. #define LINEDISCONNECTMODE_REJECT       0x00000004
  680. #define LINEDISCONNECTMODE_PICKUP       0x00000008
  681. #define LINEDISCONNECTMODE_FORWARDED    0x00000010
  682. #define LINEDISCONNECTMODE_BUSY         0x00000020
  683. #define LINEDISCONNECTMODE_NOANSWER     0x00000040
  684. #define LINEDISCONNECTMODE_BADADDRESS   0x00000080
  685. #define LINEDISCONNECTMODE_UNREACHABLE  0x00000100
  686. #define LINEDISCONNECTMODE_CONGESTION   0x00000200
  687. #define LINEDISCONNECTMODE_INCOMPATIBLE 0x00000400
  688. #define LINEDISCONNECTMODE_UNAVAIL      0x00000800
  689. #define LINEDISCONNECTMODE_NODIALTONE   0x00001000
  690.  
  691. #define LINEERR_ALLOCATED                   0x80000001
  692. #define LINEERR_BADDEVICEID                 0x80000002
  693. #define LINEERR_BEARERMODEUNAVAIL           0x80000003
  694. #define LINEERR_CALLUNAVAIL                 0x80000005
  695. #define LINEERR_COMPLETIONOVERRUN           0x80000006
  696. #define LINEERR_CONFERENCEFULL              0x80000007
  697. #define LINEERR_DIALBILLING                 0x80000008
  698. #define LINEERR_DIALDIALTONE                0x80000009
  699. #define LINEERR_DIALPROMPT                  0x8000000A
  700. #define LINEERR_DIALQUIET                   0x8000000B
  701. #define LINEERR_INCOMPATIBLEAPIVERSION      0x8000000C
  702. #define LINEERR_INCOMPATIBLEEXTVERSION      0x8000000D
  703. #define LINEERR_INIFILECORRUPT              0x8000000E
  704. #define LINEERR_INUSE                       0x8000000F
  705. #define LINEERR_INVALADDRESS                0x80000010
  706. #define LINEERR_INVALADDRESSID              0x80000011
  707. #define LINEERR_INVALADDRESSMODE            0x80000012
  708. #define LINEERR_INVALADDRESSSTATE           0x80000013
  709. #define LINEERR_INVALAPPHANDLE              0x80000014
  710. #define LINEERR_INVALAPPNAME                0x80000015
  711. #define LINEERR_INVALBEARERMODE             0x80000016
  712. #define LINEERR_INVALCALLCOMPLMODE          0x80000017
  713. #define LINEERR_INVALCALLHANDLE             0x80000018
  714. #define LINEERR_INVALCALLPARAMS             0x80000019
  715. #define LINEERR_INVALCALLPRIVILEGE          0x8000001A
  716. #define LINEERR_INVALCALLSELECT             0x8000001B
  717. #define LINEERR_INVALCALLSTATE              0x8000001C
  718. #define LINEERR_INVALCALLSTATELIST          0x8000001D
  719. #define LINEERR_INVALCARD                   0x8000001E
  720. #define LINEERR_INVALCOMPLETIONID           0x8000001F
  721. #define LINEERR_INVALCONFCALLHANDLE         0x80000020
  722. #define LINEERR_INVALCONSULTCALLHANDLE      0x80000021
  723. #define LINEERR_INVALCOUNTRYCODE            0x80000022
  724. #define LINEERR_INVALDEVICECLASS            0x80000023
  725. #define LINEERR_INVALDEVICEHANDLE           0x80000024
  726. #define LINEERR_INVALDIALPARAMS             0x80000025
  727. #define LINEERR_INVALDIGITLIST              0x80000026
  728. #define LINEERR_INVALDIGITMODE              0x80000027
  729. #define LINEERR_INVALDIGITS                 0x80000028
  730. #define LINEERR_INVALEXTVERSION             0x80000029
  731. #define LINEERR_INVALGROUPID                0x8000002A
  732. #define LINEERR_INVALLINEHANDLE             0x8000002B
  733. #define LINEERR_INVALLINESTATE              0x8000002C
  734. #define LINEERR_INVALLOCATION               0x8000002D
  735. #define LINEERR_INVALMEDIALIST              0x8000002E
  736. #define LINEERR_INVALMEDIAMODE              0x8000002F
  737. #define LINEERR_INVALMESSAGEID              0x80000030
  738. #define LINEERR_INVALPARAM                  0x80000032
  739. #define LINEERR_INVALPARKID                 0x80000033
  740. #define LINEERR_INVALPARKMODE               0x80000034
  741. #define LINEERR_INVALPOINTER                0x80000035
  742. #define LINEERR_INVALPRIVSELECT             0x80000036
  743. #define LINEERR_INVALRATE                   0x80000037
  744. #define LINEERR_INVALREQUESTMODE            0x80000038
  745. #define LINEERR_INVALTERMINALID             0x80000039
  746. #define LINEERR_INVALTERMINALMODE           0x8000003A
  747. #define LINEERR_INVALTIMEOUT                0x8000003B 
  748. #define LINEERR_INVALTONE                   0x8000003C
  749. #define LINEERR_INVALTONELIST               0x8000003D
  750. #define LINEERR_INVALTONEMODE               0x8000003E
  751. #define LINEERR_INVALTRANSFERMODE           0x8000003F
  752. #define LINEERR_LINEMAPPERFAILED            0x80000040
  753. #define LINEERR_NOCONFERENCE                0x80000041
  754. #define LINEERR_NODEVICE                    0x80000042
  755. #define LINEERR_NODRIVER                    0x80000043
  756. #define LINEERR_NOMEM                       0x80000044
  757. #define LINEERR_NOREQUEST                   0x80000045
  758. #define LINEERR_NOTOWNER                    0x80000046
  759. #define LINEERR_NOTREGISTERED               0x80000047
  760. #define LINEERR_OPERATIONFAILED             0x80000048
  761. #define LINEERR_OPERATIONUNAVAIL            0x80000049
  762. #define LINEERR_RATEUNAVAIL                 0x8000004A
  763. #define LINEERR_RESOURCEUNAVAIL             0x8000004B
  764. #define LINEERR_REQUESTOVERRUN              0x8000004C
  765. #define LINEERR_STRUCTURETOOSMALL           0x8000004D
  766. #define LINEERR_TARGETNOTFOUND              0x8000004E
  767. #define LINEERR_TARGETSELF                  0x8000004F
  768. #define LINEERR_UNINITIALIZED               0x80000050
  769. #define LINEERR_USERUSERINFOTOOBIG          0x80000051
  770. #define LINEERR_REINIT                      0x80000052
  771. #define LINEERR_ADDRESSBLOCKED              0x80000053
  772. #define LINEERR_BILLINGREJECTED             0x80000054
  773. #define LINEERR_INVALFEATURE                0x80000055
  774. #define LINEERR_NOMULTIPLEINSTANCE          0x80000056
  775.  
  776.  
  777. typedef struct lineforward_tag {
  778.     DWORD    dwForwardMode;
  779.  
  780.     DWORD    dwCallerAddressSize;
  781.     DWORD    dwCallerAddressOffset;
  782.     
  783.     DWORD    dwDestCountryCode;
  784.     DWORD    dwDestAddressSize;
  785.     DWORD    dwDestAddressOffset;    
  786. } LINEFORWARD, *LPLINEFORWARD;
  787.  
  788. typedef struct lineforwardlist_tag {
  789.     DWORD    dwTotalSize;
  790.  
  791.     DWORD    dwNumEntries;
  792.     LINEFORWARD    ForwardList[1];
  793. } LINEFORWARDLIST, *LPLINEFORWARDLIST;
  794.  
  795. typedef struct linegeneratetone_tag {
  796.     DWORD    dwFrequency;
  797.     DWORD    dwCadenceOn;
  798.     DWORD    dwCadenceOff;
  799.     DWORD    dwVolume;
  800. } LINEGENERATETONE, *LPLINEGENERATETONE;
  801.  
  802. #define LINEMAPPER         0xFFFFFFFF
  803. typedef struct linemediacontrolcallstate_tag {
  804.     DWORD    dwCallStates;
  805.     DWORD    dwMediaControl;
  806. } LINEMEDIACONTROLCALLSTATE, 
  807. *LPLINEMEDIACONTROLCALLSTATE;
  808.  
  809. typedef struct linemediacontroldigit_tag {
  810.     DWORD            dwDigit;
  811.     DWORD            dwDigitModes;
  812.     DWORD            dwMediaControl;
  813. } LINEMEDIACONTROLDIGIT, *LPLINEMEDIACONTROLDIGIT;
  814.  
  815. typedef struct linemediacontrolmedia_tag {
  816.     DWORD            dwMediaModes;
  817.     DWORD            dwDuration;
  818.     DWORD            dwMediaControl;
  819. } LINEMEDIACONTROLMEDIA, *LPLINEMEDIACONTROLMEDIA;
  820.  
  821. typedef struct linemediacontroltone_tag {
  822.     DWORD    dwAppSpecific;
  823.     DWORD    dwDuration;
  824.     DWORD    dwFrequency1;
  825.     DWORD    dwFrequency2;
  826.     DWORD    dwFrequency3;
  827.     DWORD    dwMediaControl;
  828. } LINEMEDIACONTROLTONE, *LPLINEMEDIACONTROLTONE;
  829.  
  830. #define LINEMEDIACONTROL_NONE           0x00000001
  831. #define LINEMEDIACONTROL_START          0x00000002
  832. #define LINEMEDIACONTROL_RESET          0x00000004
  833. #define LINEMEDIACONTROL_PAUSE          0x00000008
  834. #define LINEMEDIACONTROL_RESUME         0x00000010
  835. #define LINEMEDIACONTROL_RATEUP         0x00000020
  836. #define LINEMEDIACONTROL_RATEDOWN       0x00000040
  837. #define LINEMEDIACONTROL_RATENORMAL     0x00000080
  838. #define LINEMEDIACONTROL_VOLUMEUP       0x00000100
  839. #define LINEMEDIACONTROL_VOLUMEDOWN     0x00000200
  840. #define LINEMEDIACONTROL_VOLUMENORMAL   0x00000400
  841.  
  842.  
  843.  
  844. #define LINEMEDIAMODE_UNKNOWN           0x00000002
  845. #define LINEMEDIAMODE_INTERACTIVEVOICE  0x00000004
  846. #define LINEMEDIAMODE_AUTOMATEDVOICE    0x00000008
  847. #define LINEMEDIAMODE_DATAMODEM         0x00000010
  848. #define LINEMEDIAMODE_G3FAX             0x00000020
  849. #define LINEMEDIAMODE_TDD               0x00000040
  850. #define LINEMEDIAMODE_G4FAX             0x00000080
  851. #define LINEMEDIAMODE_DIGITALDATA       0x00000100
  852. #define LINEMEDIAMODE_TELETEX           0x00000200
  853. #define LINEMEDIAMODE_VIDEOTEX          0x00000400
  854. #define LINEMEDIAMODE_TELEX             0x00000800
  855. #define LINEMEDIAMODE_MIXED             0x00001000
  856. #define LINEMEDIAMODE_ADSI              0x00002000
  857. #define LINEMEDIAMODE_VOICEVIEW         0x00004000
  858.  
  859. #define LAST_LINEMEDIAMODE              0x00004000
  860.  
  861. typedef struct linemonitortone_tag {
  862.     DWORD    dwAppSpecific;
  863.     DWORD    dwDuration;
  864.     DWORD    dwFrequency1;
  865.     DWORD    dwFrequency2;
  866.     DWORD    dwFrequency3;
  867. } LINEMONITORTONE, *LPLINEMONITORTONE;
  868.  
  869. typedef struct linereqmakecall_tag {
  870.     char    szDestAddress[TAPIMAXDESTADDRESSSIZE];
  871.     char    szAppName[TAPIMAXAPPNAMESIZE];
  872.     char    szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  873.     char    szComment[TAPIMAXCOMMENTSIZE];
  874. } LINEREQMAKECALL, *LPLINEREQMAKECALL;
  875.  
  876.  
  877. typedef struct linetranslateoutput_tag {
  878.     DWORD dwTotalSize;
  879.     DWORD dwNeededSize;
  880.     DWORD dwUsedSize;
  881.  
  882.     DWORD dwDialableStringSize;
  883.     DWORD dwDialableStringOffset;
  884.     DWORD dwDisplayableStringSize;
  885.     DWORD dwDisplayableStringOffset;
  886.  
  887.     DWORD dwCurrentCountry;
  888.     DWORD dwDestCountry;
  889.     DWORD dwTranslateResults;
  890. } LINETRANSLATEOUTPUT, *LPLINETRANSLATEOUTPUT;
  891.  
  892. typedef struct linetranslatecaps_tag {
  893.     DWORD dwTotalSize;
  894.     DWORD dwNeededSize;
  895.     DWORD dwUsedSize;
  896.  
  897.     DWORD dwNumLocations;
  898.     DWORD dwLocationListSize;
  899.     DWORD dwLocationListOffset;
  900.     
  901.     DWORD dwCurrentLocationID;
  902.     
  903.     DWORD dwNumCards;
  904.     DWORD dwCardListSize;
  905.     DWORD dwCardListOffset;
  906.  
  907.     DWORD dwCurrentPreferredCardID;
  908. } LINETRANSLATECAPS, *LPLINETRANSLATECAPS;
  909.  
  910. typedef struct linelocationentry_tag {
  911.     DWORD dwPermanentLocationID;
  912.     DWORD dwLocationNameSize;
  913.     DWORD dwLocationNameOffset;
  914.     DWORD dwCountryCode;
  915.     DWORD dwCityCodeSize;
  916.     DWORD dwCityCodeOffset;
  917.     DWORD dwPreferredCardID;
  918.     // From here down are new fields in TAPI32
  919.     DWORD  dwLocalAccessCodeSize;
  920.     DWORD  dwLocalAccessCodeOffset;
  921.     DWORD  dwLongDistanceAccessCodeSize;
  922.     DWORD  dwLongDistanceAccessCodeOffset;
  923.     DWORD  dwTollPrefixListSize;
  924.     DWORD  dwTollPrefixListOffset;
  925.     DWORD  dwCountryID;
  926.     DWORD  dwOptions;
  927.     DWORD  dwCancelCallWaitingSize;
  928.     DWORD  dwCancelCallWaitingOffset;
  929. } LINELOCATIONENTRY, *LPLINELOCATIONENTRY;
  930.  
  931. #define LINETRANSLATEOPTION_CARDOVERRIDE  0x00000001
  932. #define LINETRANSLATEOPTION_CANCELCALLWAITING      0x00000002
  933. #define LINETRANSLATEOPTION_FORCELOCAL             0x00000004
  934. #define LINETRANSLATEOPTION_FORCELD                0x00000008
  935.  
  936. #define LINETRANSLATERESULT_CANONICAL              0x00000001
  937. #define LINETRANSLATERESULT_INTERNATIONAL          0x00000002
  938. #define LINETRANSLATERESULT_LONGDISTANCE           0x00000004
  939. #define LINETRANSLATERESULT_LOCAL                  0x00000008
  940. #define LINETRANSLATERESULT_INTOLLLIST             0x00000010
  941. #define LINETRANSLATERESULT_NOTINTOLLLIST          0x00000020
  942. #define LINETRANSLATERESULT_DIALBILLING            0x00000040
  943. #define LINETRANSLATERESULT_DIALQUIET              0x00000080
  944. #define LINETRANSLATERESULT_DIALDIALTONE           0x00000100
  945. #define LINETRANSLATERESULT_DIALPROMPT             0x00000200
  946.  
  947.  
  948. #define LINELOCATIONOPTION_PULSEDIAL               0x00000001
  949.  
  950. #define LINECARDOPTION_PREDEFINED              0x00000001
  951. #define LINECARDOPTION_HIDDEN                  0x00000002
  952.  
  953.  
  954. #define INITIALIZE_NEGOTIATION                     0xffffffff
  955.  
  956. // Tapi Address Translation procedures
  957. LONG WINAPI lineSetCurrentLocation(
  958.     HLINEAPP hLineApp,
  959.     DWORD dwLocation);
  960.  
  961. LONG WINAPI lineTranslateAddress(
  962.     HLINEAPP hLineApp,
  963.     DWORD dwDeviceID,
  964.     DWORD dwAPIVersion,
  965.     LPCTSTR lpszAddressIn,
  966.     DWORD dwCard,
  967.     DWORD dwTranslateOptions,
  968.     LPLINETRANSLATEOUTPUT lpTranslateOutput);
  969.  
  970. LONG WINAPI lineGetTranslateCaps(
  971.     HLINEAPP hLineApp,
  972.     DWORD dwAPIVersion,
  973.     LPLINETRANSLATECAPS lpTranslateCaps);
  974.  
  975.  
  976. // Tapi function prototypes
  977.  
  978. LONG WINAPI lineClose(
  979.         HLINE hLine);
  980.  
  981. LONG WINAPI lineConfigDialog(
  982.         DWORD dwDeviceID,
  983.         HWND  hwndOwner,
  984.         LPCTSTR lpszDeviceClass);
  985.  
  986. LONG WINAPI lineDeallocateCall(
  987.         HCALL hCall);
  988.  
  989. LONG WINAPI lineDrop(
  990.         HCALL hCall, 
  991.         LPCTSTR lpsUserUserInfo, 
  992.         DWORD dwSize);
  993.  
  994. LONG WINAPI lineGetDevCaps(
  995.         HLINEAPP hLineApp, 
  996.         DWORD dwDeviceID, 
  997.         DWORD dwAPIVersion,
  998.         DWORD dwExtVersion, 
  999.         LPLINEDEVCAPS lpLineDevCaps);
  1000.  
  1001. LONG WINAPI lineGetDevConfig(
  1002.         DWORD dwDeviceID,
  1003.         LPVARSTRING lpDeviceConfig,
  1004.         LPCTSTR lpszDeviceClass);
  1005.  
  1006. LONG WINAPI lineGetID(
  1007.         HLINE hLine,
  1008.         DWORD dwAddressID, 
  1009.         HCALL hCall,
  1010.         DWORD dwSelect,        
  1011.         LPVARSTRING lpDeviceID, 
  1012.         LPCTSTR lpszDeviceClass);
  1013.  
  1014. LONG WINAPI lineInitialize(
  1015.         LPHLINEAPP lphLineApp,
  1016.         HINSTANCE hInstance,
  1017.         LINECALLBACK lpfnCallback,
  1018.         LPCTSTR lpszAppName,
  1019.         LPDWORD lpdwNumDevs);
  1020.  
  1021. LONG WINAPI lineMakeCall(
  1022.         HLINE hLine, 
  1023.         LPHCALL lphCall, 
  1024.         LPCTSTR lpszDestAddress, 
  1025.         DWORD dwCountryCode, 
  1026.         LPLINECALLPARAMS const lpCallParams);
  1027.  
  1028. LONG WINAPI lineNegotiateAPIVersion(
  1029.         HLINEAPP hLineApp,
  1030.         DWORD dwDeviceID,
  1031.         DWORD dwAPILowVersion,
  1032.         DWORD dwAPIHighVersion,
  1033.         LPDWORD lpdwAPIVersion,
  1034.         LPLINEEXTENSIONID lpExtensionID);
  1035.  
  1036. LONG WINAPI lineNegotiateExtVersion(
  1037.         HLINEAPP hLineApp,
  1038.         DWORD dwDeviceID,
  1039.         DWORD dwAPIVersion,
  1040.         DWORD dwExtLowVersion,
  1041.         DWORD dwExtHighVersion,
  1042.         LPDWORD lpdwExtVersion);
  1043.  
  1044. LONG WINAPI lineOpen(
  1045.         HLINEAPP hLineApp, 
  1046.         DWORD dwDeviceID,
  1047.         LPHLINE lphLine,
  1048.         DWORD dwAPIVersion,
  1049.         DWORD dwExtVersion,
  1050.         DWORD dwCallbackInstance,
  1051.         DWORD dwPrivileges,
  1052.         DWORD dwMediaModes,
  1053.         LPLINECALLPARAMS const lpCallParams);
  1054.  
  1055. LONG WINAPI lineSetDevConfig(
  1056.         DWORD dwDeviceID,
  1057.         LPVOID const lpDeviceConfig,
  1058.         DWORD dwSize,
  1059.         LPCTSTR lpszDeviceClass);
  1060.  
  1061. LONG WINAPI lineSetStatusMessages(
  1062.         HLINE hLine, 
  1063.         DWORD dwLineStates, 
  1064.         DWORD dwAddressStates);
  1065.  
  1066. LONG WINAPI lineShutdown(
  1067.         HLINEAPP hLineApp);
  1068.  
  1069. LONG WINAPI lineTranslateDialog(
  1070.     HLINEAPP hLineApp,
  1071.     DWORD dwDeviceID,
  1072.     DWORD dwAPIVersion,
  1073.     HWND hwndOwner,
  1074.     LPCTSTR lpszAddressIn);
  1075.  
  1076. LONG WINAPI lineConfigDialogEdit(
  1077.     DWORD dwDeviceID,
  1078.     HWND hwndOwner,
  1079.     LPCTSTR lpszDeviceClass,
  1080.     LPVOID const lpDeviceConfigIn,
  1081.     DWORD dwSize,
  1082.     LPVARSTRING lpDeviceConfigOut);
  1083.  
  1084. LONG WINAPI lineAddProvider(
  1085.     LPCTSTR lpszProviderFilename,
  1086.     HWND hwndOwner,
  1087.     LPDWORD lpdwPermanentProviderID);
  1088.  
  1089. LONG WINAPI lineSetCurrentLocation(
  1090.     HLINEAPP hLineApp,
  1091.     DWORD dwLocation);
  1092.     
  1093.  
  1094. #if defined(WINCEOEM) && defined(UNDER_CE)
  1095. #include <ptapi.h>
  1096. #ifdef WINCEMACRO
  1097. #include <mtapi.h>
  1098. #endif
  1099. #endif
  1100.  
  1101. #ifdef __cplusplus
  1102. }                       /* End of extern "C" { */
  1103. #endif   /* __cplusplus */
  1104.  
  1105. #pragma pack()
  1106.  
  1107. #endif // TAPI_H
  1108.  
  1109. // @CESYSGEN ENDIF
  1110.